package com.cloud.drore.eboos.common.entity.operation.vo;

import com.alibaba.fastjson.annotation.JSONField;
import com.cloud.drore.eboos.common.base.BaseEntity;
import com.cloud.drore.eboos.jackson.JacksonDateDeserializer;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 浙江卓锐科技股份有限公司 版权所有  Copyright 2018<br>
 *
 * @Description: 运营商财务结算的流水统计页面<br>
 * @Project: eboos <br>
 * @CreateDate: Created in 2018/1/24 0024 下午 4:42 <br>
 * @Author: <a href="410508961@qq.com">夏凯</a>
 */
@Data
public class FinaceFlowMeterOperationVo extends BaseEntity<Long> {

    /**
     * 流水事件
     */
    @JsonProperty("order_event_status")
    @JSONField(name = "order_event_status")
    @ApiModelProperty(name = "order_event_status", notes = "订单交易事件", example = "ORDER_PAY")
    private String orderEventStatus;


    /**
     * 事件发生时间
     */
    @JsonDeserialize(using = JacksonDateDeserializer.class)
    @JsonProperty("order_produce_time")
    @JSONField(name = "order_produce_time", format = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(name = "order_produce_time", notes = "事件发生时间", example = "2018-1-01 16:36:24")
    private Date orderProduceTime;

    /**
     * 订单号
     */
    @JsonProperty("order_num")
    @JSONField(name = "order_num")
    @ApiModelProperty(name = "order_num", notes = "订单号")
    private String orderNum;


    /**
     * 流水事件中文名称
     */
    @JsonProperty("event_name")
    @JSONField(name = "event_name")
    @ApiModelProperty(name = "event_name", notes = "流水事件中文名称", example = "账户充值")
    private String eventName;

    /**
     * 操作金额
     */
    @JsonProperty("event_amount")
    @JSONField(name = "event_amount")
    @ApiModelProperty(name = "event_amount", notes = "操作金额", example = "5000.00")
    private BigDecimal eventAmount;

    /**
     * 应收款
     */
    @JsonProperty("amount_should_collect")
    @JSONField(name = "amount_should_collect")
    @ApiModelProperty(name = "amount_should_collect", notes = "应收款", example = "5000.00")
    private BigDecimal amountShouldCollect;

    /**
     * 应付款
     */
    @JsonProperty("amount_should_pay")
    @JSONField(name = "amount_should_pay")
    @ApiModelProperty(name = "amount_should_pay", notes = "应付款", example = "5000.00")
    private BigDecimal amountShouldPay;

    /**
     * 流水类型
     */
    @JsonProperty("event_type")
    @JSONField(name = "event_type")
    @ApiModelProperty(name = "event_type", notes = "流水类型", example = "1")
    private int eventType;
}
